package com.moyu.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moyu.user.domain.role.vo.RoleListVO;
import com.moyu.user.domain.user.User;
import com.moyu.user.domain.user.dto.*;
import com.moyu.user.domain.user.vo.LoginUserVO;
import com.moyu.user.domain.user.vo.UserHotVO;
import com.moyu.user.domain.user.vo.UserPostListVO;
import com.moyu.user.domain.user.vo.UserQueryVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 用户数据库访问层
 *
 * @Author 赵彦博
 * @Date 2025/3/25 18:29
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {
    List<UserQueryVO> list(UserQueryDTO userQueryDTO);

    List<RoleListVO> getRole(UserQueryDTO userQueryDTO);

    List<RoleListVO> getAvailableRoles(UserRoleQueryDTO queryDTO);

    int addUserRole(UserRoleDTO dto);

    int removeUserRole(UserRoleDTO dto);

    List<UserHotVO> getHotUser();

    Integer getPostCount();

    Integer getReplyCount();

    Integer getUserCount();

    int updateUserInfo(UserUpdateDTO dto);

    int changePassword(UserUpdatePasswordDTO dto);

    List<UserPostListVO> getUserPosts(String userId);

    LoginUserVO selectData(String userId);

    int updateAvatar(String fileName, String userId);

    List<UserPostListVO> getUserFavorites(String userId);
}
